Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
transform-props-with
Advanced tools
Transform Props With is a functional approach to React component reuse.
Compose small testable functions to modify props for components.
$ npm install transform-props-with --save
or with Yarn
$ yarn add transform-props-with
import tx from 'transform-props-with'
import BaseComponent from './base-component'
const doubleSize = (oldProps) => {
const { size, ...props } = oldProps;
return {
size: size * 2,
...props
};
};
const EnhancedComponent = tx(doubleSize)(BaseComponent)
ReactDOM.render(<EnhancedComponent size={100} />, node);
// Would render <BaseComponent size={200} />
See the full API documentation for details.
Pass an object to merge it with provided props automatically.
const EnhancedComponent = tx({ stars: 10 })(BaseComponent)
ReactDOM.render(<EnhancedComponent size={100} />, node);
// Would render <BaseComponent size={100} stars={ 10 } />
Note: this is not a deep merge. It is equal to this transformation:
const setStarsTo10 = (oldProps) => Object.assign({}, oldProps, { stars: 10 })
Pass an array of transformations to the function, and they will all be combined to a single transformation left to right.
In the following example, addFive
would be applied first, and doubleSize
will be called with props returned by it.
const EnhancedComponent =
tx([ addFive, doubleSize ])(BaseComponent)
Of course, transformations and object merges can be mixed.
const EnhancedComponent =
tx([ addFive, { stars: 10 }, doubleSize ])(BaseComponent)
React enables to get references to the DOM elements using ref
props, cf. documentation. When passed to an enhanced component this would point to the wrapper. The library will rename __ref
to ref
so the developer can access the DOM element of the inner component.
onClick
)Transform Props With returns a stateless functional component; these were introduced in React v0.14.0 (release notes).
Polyfill for [Array.prototype.reduce] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce) might be needed to support older browsers.
2.2.0 - 2017-04-07
FAQs
Higher-order component for transforming props
We found that transform-props-with demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.